import Actions from './actions';
export interface IMainReducer {
  isReady: boolean;
  isLoading?: boolean;
  isLoadingList: boolean;
  delayLoading: boolean;
  unUseCount: IMainUnUseCount;

  usedCount: IMainUsedCount;

  // 是否蓝晶会员标志 false：否，true：是
  isAquamarineMember: boolean;
  // 是否赤晶会员标志 false：否，true：是
  isCrystalMember: boolean;

  isScroll?: boolean;

  // 底部抽奖文字奖项
  showAwardTxt?: boolean;

  // 获取游戏机会
  // showChanceModal?: boolean;

  // 游戏结束
  showGameOverModal?: boolean;

  // 游戏结束，是否获得奖励
  getPrize?: boolean;

  // 是否显示画板
  showCanvas?: boolean;

  // 欧气攻略模态框
  showStrategyModal?: boolean;

  // 任务模态框
  showTaskModal?: boolean;

  // 魔力进阶-道具
  showPropModal?: boolean;

  // 游戏可玩次数
  gameTimes?: number;

  // 游戏每日剩余可玩次数
  gameDailyLeftTimes?:number;

  // 游戏结果
  gameLotteries: Array<any>;

  // 是否是新人保障
  isNewComer: '',

  // 开通会员弹窗
  showOpenMemberModal?: boolean;

  // 每日领取游戏次数
  showDailyExclusiveModal?:boolean;

  overDueCount: IMainOverDueCount;

  couponType: IMainCouponType;

  showDrapMenu: boolean;
  request: IRequestType;
  total: ITotalType;
  isExplainFlag: boolean; //领券规则开关
  couponDesc: string; //领券规则
  gameInfo: any;
  codeMessage: any;
  task: any; // 任务相关
  status: {
    [name: string]: any;
  };
  userInfo: any;
  gameReceiveInfo: any;
  response: {
    [name: string]: any;
  };
  prop: any;

}

export type ActionType = ReturnType<typeof Actions>;
export type IAllReducerProps = {
  main: IMainReducer;

  [name: string]: any;
};

//默认是全部的属性,可以自定义
export type IProps = IAllReducerProps & ActionType;

export type IInfoProps = {};

export type IHeaderProps = {};
export type IHeaderState = {};

export type ICouponTypeMaskProps = {};
export type ICouponTypeMaskState = {};

export type ICouponListProps = {};
export type ICouponListState = {};

export type ICouponItemProps = {};
export type ICouponItemState = {};
export type IEmptyProps = {};
export type IEmptyState = {};

export type ICouponStatusTabProps = {};
export type ICouponStatusTabState = {};
export type ISegmentTabProps = {};
export type ISegmentTabStateProps = {};

export type IMainUnUseCount = number;
export type IMainUsedCount = number;
export type IMainOverDueCount = number;
export type IMainUseStatus = number;
export type IMainCouponType = null | number;
export type IMainShowDrapMenu = boolean;
export type IRequestType = {
  pageNum: number;
};
export type ITotalType = number;

//create by moon https://github.com/creasy2010/moon
